Lightning search aggregate

ABSTRACT

Disclosed are methods and apparatus for executing a search query. In accordance with one embodiment, a search query is obtained. The search query is classified into one or more of a plurality of categories. The search query is executed for each of the one or more of the plurality of categories. Search results corresponding to the search query are obtained for each of the one or more of the plurality of categories. The search results are then provided for each of the one or more of the plurality of categories.

BACKGROUND OF THE INVENTION

The present invention relates generally to computer implementedsearches.

Every day, millions of users search for information on the web viasearch engines. Through their interaction with search engines, not onlyare they able to locate the information they are looking for, but theyalso provide implicit feedback on the results shown in response to theirqueries by clicking or not clicking onto the search results.

Nowadays search engines can record query logs that keep various types ofinformation about which documents (e.g., web pages or web sites) usersclick for which query. Such information can be seen as “soft” relevancefeedback for the documents that are clicked as a result of specificqueries. This “soft” relevance feedback may be used to generate a scoreassociated with these documents that indicates the relevance of thedocuments to a particular query. This score may then be used by searchengines to provide the most relevant documents in response to queries.

While documents that are provided in response to queries may be relevantto those queries, search results are not generally provided in anorganized manner. As a result, these search results are often cumbersometo view. Accordingly, sorting through these search results can yield anunsatisfying and frustrating user experience.

In view of the above, it would be beneficial if improved methods ofsearching could be implemented.

SUMMARY OF THE INVENTION

Methods and apparatus for automatically executing a search query aredisclosed. In accordance with one embodiment, a search query isobtained. The search query is classified into one or more of a pluralityof categories. The search query is executed for each of the one or moreof the plurality of categories. Search results corresponding to thesearch query are obtained for each of the one or more of the pluralityof categories. The search results are then provided for each of the oneor more of the plurality of categories.

In accordance with another embodiment, a selection of one of a set ofbookmarks is received, wherein each of the set of bookmarks identifies asearch query that has previously been submitted. Search results areretrieved from memory, the search results corresponding to the selectedbookmark. The search results that have been retrieved are then provided,wherein the search results include a link to each of one or moredocuments, wherein each of the documents is associated with acorresponding one of a plurality of categories.

In another embodiment, the invention pertains to a device comprising aprocessor, memory, and a display. The processor and memory areconfigured to perform one or more of the above described methodoperations. In another embodiment, the invention pertains to a computerreadable storage medium having computer program instructions storedthereon that are arranged to perform one or more of the above describedmethod operations.

These and other features and advantages of the present invention will bepresented in more detail in the following specification of the inventionand the accompanying figures which illustrate by way of example theprinciples of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example system in whichvarious embodiments may be implemented.

FIG. 2 is a screen shot illustrating an example graphical user interfacevia which bookmarks may be implemented.

FIG. 3 is a screen shot illustrating an example graphical user interfacevia which prior search results that have been clicked may be accessed inassociation with one of the bookmarks shown in FIG. 2.

FIG. 4 is a screen shot illustrating example prior search results thathave been clicked in association with another one of the bookmarks shownin FIG. 2.

FIG. 5A is a screen shot illustrating an example graphical userinterface via which a search associated with one of the bookmarks shownin FIG. 2 may be performed.

FIG. 5B is a screen shot illustrating an example graphical userinterface via which results of the search executed in FIG. 5A may beprovided.

FIG. 6A is a screen shot illustrating an example graphical userinterface via which prior search results that have been clicked may beaccessed in association with one of the bookmarks shown in FIG. 5B.

FIG. 6B is the screen shot of FIG. 6A after one of the prior searchresults associated with a bookmark has been selected.

FIG. 7A is a screen shot illustrating an example graphical userinterface illustrating an automatically generated set of bookmarks.

FIG. 7B is a screen shot illustrating an example search query that hasbeen entered into a search text box.

FIG. 8 is a screen shot illustrating an example graphical user interfaceillustrating the search results corresponding to the search querysubmitted as shown in FIG. 7B.

FIG. 9A is an example screen shot illustrating the selection of one ofthe search results provided in FIG. 8.

FIG. 9B is an example screen shot illustrating a resulting web pageafter the selection of the search result as shown in FIG. 9A.

FIG. 10A is an example screen shot illustrating that the automaticallygenerated set of bookmarks includes a new bookmark corresponding to thesearch query submitted in FIG. 7B.

FIG. 10B is a screen shot illustrating example search results associatedwith the new bookmark shown in FIG. 10A that have previously beenclicked.

FIG. 10C is a process flow diagram illustrating an example method ofautomatically storing bookmarks in accordance with various embodiments.

FIG. 11 is a screen shot illustrating an example graphical userinterface via which aggregate search results may be provided.

FIG. 12 is a screen shot illustrating example aggregate search resultsassociated with one of the bookmarks shown in FIG. 11.

FIG. 13 is a screen shot illustrating example aggregate search resultsassociated with another one of the bookmarks shown in FIG. 11.

FIG. 14 is a screen shot illustrating example aggregate search resultsassociated with yet another one of the bookmarks shown in FIG. 11.

FIG. 15A is the screen shot of FIG. 14 after one of the aggregate searchresults has been selected.

FIG. 15B is a screen shot illustrating a resulting web pagecorresponding to the selected one of the aggregate search results shownin FIG. 15A.

FIG. 16A is a screen shot illustrating previously clicked search resultsin association with a selected one of the bookmarks shown in FIG. 11.

FIG. 16B is a screen shot illustrating aggregate search resultsassociated with the bookmark selected in FIG. 16A.

FIG. 16C is a screen shot illustrating the selection of one of theaggregate search results provided in FIG. 16B.

FIG. 16D is a screen shot illustrating a resulting web page inassociation with the selected one of the aggregate search results asshown in FIG. 16B.

FIG. 17A is a process flow diagram illustrating an example method ofproviding aggregate search results in accordance with variousembodiments.

FIG. 17B is a process flow diagram illustrating another example methodof providing aggregate search results in accordance with variousembodiments.

FIG. 18 is a simplified diagram of a network environment in whichvarious embodiments may be implemented.

FIG. 19 illustrates an example computer system in which variousembodiments may be implemented.

DETAILED DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Reference will now be made in detail to specific embodiments of theinvention. Examples of these embodiments are illustrated in theaccompanying drawings. While the invention will be described inconjunction with these specific embodiments, it will be understood thatit is not intended to limit the invention to these embodiments. On thecontrary, it is intended to cover alternatives, modifications, andequivalents as may be included within the spirit and scope of theinvention as defined by the appended claims. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. The present inventionmay be practiced without some or all of these specific details. In otherinstances, well known process operations have not been described indetail in order not to unnecessarily obscure the present invention.

In the following description, a document may be defined as a UniformResource Locator (URL) that identifies a location at which the documentcan be located. The document may be located on a particular web site, aswell as a specific web page on the web site. For instance, a first URLmay identify a location of a web page at which a document is located,while a second URL may identify a location of a web site at which thedocument can be located.

In recent years, the Internet has been a main source of information formillions of users. These users rely on the Internet to search forinformation of interest to them. One conventional way for users tosearch for information is to initiate a search query through a searchservice's web page. Typically, a user can enter a query including one ormore search term(s) into an input box on the search web page and theninitiate a search based on such entered search term(s). In response tothe query, a web search engine generally returns an ordered list ofsearch result documents.

FIG. 1 illustrates an example network segment in which variousembodiments of the invention may be implemented. As shown, a pluralityof clients 102 a, 102 b, 102 c may access a search application, forexample, on search server 106 via network 104 and/or access a webservice, for example, on web server 114. The network may take anysuitable form, such as a wide area network or Internet and/or one ormore local area networks (LAN's). The network 104 may include anysuitable number and type of devices, e.g., routers and switches, forforwarding search or web object requests from each client to the searchor web application and search or web results back to the requestingclients.

The invention may also be practiced in a wide variety of networkenvironments (represented by network 104) including, for example,TCP/IP-based networks, telecommunications networks, wireless networks,etc. In addition, the computer program instructions with whichembodiments of the invention are implemented may be stored in any typeof computer-readable media, and may be executed according to a varietyof computing models including a client/server model, a peer-to-peermodel, on a stand-alone computing device, or according to a distributedcomputing model in which various of the functionalities described hereinmay be effected or employed at different locations.

A search application generally allows a user (human or automated entity)to search for information that is accessible via network 104 and relatedto a search query including one or more search terms. The search termsmay be entered by a user in any manner. For example, the searchapplication may present a web page having any input feature to theclient (e.g., on the client's device) so the client can enter a queryincluding one or more search term(s). In a specific implementation, thesearch application presents an input box into which a user may type aquery including any number of search terms. Embodiments of the presentinvention may be employed with respect to any search application.Example search applications include Yahoo! Search, Google, Altavista,Ask Jeeves, etc. The search application may be implemented on any numberof servers although only a single search server 106 is illustrated forclarity.

The search server 106 (or servers) may have access to one or more querylogs 110 into which search information is retained. For example, thequery logs 110 may be retained in one or more memories that are coupledto the search server 106. Each time a user performs a search on one ormore search terms, information regarding such search may be retained inthe query logs 110. For instance, the user's search request may containany number of parameters, such as user or browser identity and thesearch terms, which may be retained in the query logs 110. Additionalinformation related to the search, such as a timestamp, may also beretained in the query logs 110 along with the search request parameters.When results are presented to the user based on the entered searchterms, parameters from such search results may also be retained in thequery logs 110. For example, the specific search results, such as theweb sites, the order in which the search results are presented, whethereach search result is a sponsored or algorithmic search result, theowner (e.g., web site) of each search result, whether each search resultis selected (i.e., clicked on) by the user (if any), and/or a timestampmay also be retained in the query logs 110.

The implicit feedback provided by users when they click (or don't click)on various search results is typically recorded by a search engine inthe form of a query log that includes a sequence of search actions, oneper user query. Each search action may include one or more termscomposing a query, one or more documents returned by the search engine,one or more documents that have been clicked, the rank of thedocument(s) that have been clicked, the rank of the documents in thelist of search results, the date and/or time of the search action/click,an anonymous identifier for each search session, and/or a useridentifier associated with the query, etc. It is important to note thatthe information in query logs is not typically provided to a clientperforming searches. In accordance with various embodiments, thisinformation, or a portion thereof, may be processed and/or provided tothe user in order to facilitate the search process and improve the usersearch experience, as will be described in further detail below.

In accordance with various embodiments, a Lightning Search feature maybe implemented. The Lightning Search feature may provide two differentrelated features in association with a particular client, user, or webbrowser. First, search queries that are submitted may be automaticallystored as bookmarks without initiation by a user. Second, documents thatare clicked in association with a particular search query may beidentified in association with a corresponding bookmark. This may beaccomplished by storing a hypertext link to each clicked document inassociation with the corresponding bookmark. The bookmarks and userclicks may be retained over multiple search sessions (e.g., until theLightning Search feature is reset).

In accordance with further embodiments, an Aggregate Search featureenables a search query to be classified into one or more categories andexecuted for each of the categories. Search results may then be provided(e.g., displayed) for those categories, as will be described in furtherdetail below. Search results for each category may be provided in aparticular manner that is suitable for that category. This may beaccomplished through the use of a template, which may be storedstatically in memory or generated dynamically, as will be described infurther detail below.

While information related to searches such as that described above maybe stored in one or more query logs 110, information specific to theLightning Search feature and/or the Lightning Search aggregate featuremay also be stored separately as shown at 112 in one or more memoriesthat are coupled to the search server 106. Such information may also bestored in a memory of one of the clients 102 a, 102 b, 102 c thatperformed these searches (e.g., as user data of a web browser). Forinstance, software and/or data related to bookmarks, user clicks,categories, categorization of search queries, templates, and/orgeneration of templates for use in displaying search results based uponcorresponding categories may be stored. Thus, software for performingthe disclosed embodiments and data used by and generated via thedisclosed embodiments may be stored in a memory associated with thesearch server 106 and/or a corresponding one of the clients 102 a, 102b, 102 c.

Bookmarks and/or user clicks may later be automatically retrieved fromthe memory(s) associated with the search server 106 and/or client 102 aand provided upon initiation of a search session or during a searchsession via that client (e.g., in response to user input), as will bedescribed in further detail below. For example, bookmarks may beautomatically generated and provided via a user interface when theclient, web browser, or user identified by a specific user identifierreturns to a web page via which the search engine may be accessed.

Moreover, aggregate search results corresponding to categories may alsobe stored and later retrieved from the memory(s) associated with thesearch server 106 and/or client 102 a and provided upon initiation of asearch session or during a search session via that client. For example,aggregate search results may be automatically generated and provided viaa user interface when the client, web browser, or user identified by aspecific user identifier returns to a web page via which the searchengine may be accessed or in response to user input.

Embodiments disclosed herein may be implemented via the search server106 and/or the clients 102 a, 102 b, 102 c. For example, variousfeatures may be implemented via a web browser on the clients 102 a, 102b, 102 c. The disclosed embodiments may be implemented via softwareand/or hardware.

FIG. 2 is a screen shot illustrating an example graphical user interfacevia which bookmarks may be implemented. As shown in this example, asearch portal 202 via which a user may submit search queries may be aweb site such as http://search.yahoo.com/. The Lightning Search featuremay be enabled 204 or disabled 206. The Lightning Search feature mayalso be reset 208. Resetting the Lightning Search feature may result inthe deletion of any bookmarks and any associated user clicks that havebeen stored in association with a particular browser, client, user, oruser account.

As shown in this example, a set of one or more bookmarks 210 may beautomatically generated (e.g., provided or displayed) when a client, webbrowser, or user associated with the set of bookmarks returns to thesearch portal 202. In this example, the set of bookmarks is generatedunderneath the search text box 212. Each of the bookmarks represents asearch query that has previously been submitted via the portal 202.Moreover, each of these bookmarks may include a hypertext link thatenables an associated set of documents to be retrieved. In this example,the set of bookmarks 210 includes eighteen bookmarks, which include“Corvette ZR1,” “angelina jolie,” “barcelona,” “business news,” “dogtraining,” “facebook,” “flickr,” “flights,” “images,” “london,” “maproute,” “news,” “photography,” “programming perl,” “recipes,” “soccer,”“travel,” and “zimbabwe.”

Each of the bookmarks in the set of bookmarks 210 may be associated withdisplay characteristics. Thus, in order to automatically generate one ofthe bookmarks in the set of bookmarks 210, the display characteristicsof the bookmark may be obtained. The bookmark may then be displayed inaccordance with the display characteristics.

Information that is stored in association with a particular bookmark maybe used to establish or modify the display characteristics of thebookmark. For instance, information such as the frequency with which aparticular search query is executed (e.g., via selection of thebookmark) may be used to establish or modify the display characteristicsof the corresponding bookmark. Thus, a bookmark associated with a morefrequently executed search may be displayed more prominently, while abookmark associated with a less frequently executed search may bedisplayed less prominently. The display characteristics of a bookmarkmay include properties such as the size of the font used to display thebookmark, color of the bookmark, whether the bookmark is bolded and/orunderlined, etc. Accordingly, a hypertext link associated with abookmark may be displayed in accordance with a frequency with which thebookmark is clicked (e.g., by the user, browser, or client device). Thisclick frequency may be determined with respect to other bookmarks. Inother words, it may be determined which bookmarks are clicked mostfrequently in order to emphasize the most frequently selected bookmarks.

A user may explicitly or implicitly submit a request to view informationassociated with a particular bookmark. This information may indicatethose documents that have been clicked in association with a previouslysubmitted search query identified by the bookmark, as well as otherinformation associated with these documents. For example, theinformation may indicate a frequency with which each of the documentshas been viewed (e.g., by the corresponding user, web browser, orclient).

In accordance with one embodiment, when a cursor is placed over one ofthe set of bookmarks, a set of one or more user clicks associated withthe bookmark may be automatically provided (e.g., displayed).Specifically, each of the user clicks may include a hypertext link to adocument that has been previously clicked in association with the searchquery (e.g., identified by the bookmark) that has previously beenexecuted.

FIG. 3 is a screen shot illustrating an example graphical user interfacevia which prior search results that have been clicked may be accessed inassociation with one of the bookmarks shown in FIG. 2. As shown in thisexample, bookmark “angelina jolie” 302 indicates that the userpreviously submitted the “angelina jolie” search query. When a cursor isplaced over the bookmark, “angelina jolie” 302, a set of user clicksassociated with the bookmark is provided as shown at 304. In thisexample, the set of user clicks includes two different documents thatare identified by corresponding hypertext links.

For each of the documents that were previously clicked, informationassociated with the document may be obtained and provided. For instance,this information may indicate a frequency with which the document hasbeen selected (e.g., by the client, user, or web browser). As shown inthis example at 306, the user has previously selected each of thedocuments identified under the heading “Your clicks” twice.

FIG. 4 is a screen shot illustrating example prior search results thathave been clicked in association with another one of the bookmarks shownin FIG. 2. As shown in this example, bookmark “flights” 402 indicatesthat the user previously submitted the “flights” query. When the cursoris placed over the bookmark, “flights” 402, a set of user clicksassociated with the bookmark is provided as shown at 404. In thisexample, the set of user clicks includes two different documents thatare identified by corresponding hypertext links.

As shown in this example, for each of the documents that was previouslyclicked, information indicating a frequency with which the document hasbeen selected (e.g., by the client, user, or web browser) is provided.As shown in this example at 406 a and 406 b, the first documentidentified under the heading “Your clicks” has previously been selectedby the user three times, while the second document identified under theheading “Your clicks” has previously been selected by the user twice.

FIG. 5A is a screen shot illustrating an example graphical userinterface via which a search associated with one of the bookmarks shownin FIG. 2 may be performed. Specifically, in this example, the userselects bookmark “london” 502 by clicking on the bookmark 502. Uponclicking on the bookmark 502, a search with the search term “london”represented by the bookmark 502, london, is performed. Accordingly, whenone of the automatically generated bookmarks is selected, the searchquery represented by the selected bookmark is executed. The searchengine may then obtain the search results corresponding to the searchquery and provide the search results corresponding to the search query.

FIG. 5B is a screen shot illustrating an example graphical userinterface via which results of the search executed in FIG. 5A may beprovided. As shown in FIG. 5B, the results for the search query areprovided, where the search results identify one or more documents.Moreover, in this example, the set of bookmarks appear at 502 at the topof the web page next to “Your queries” title 504. Accordingly, the userinterface facilitates the search process experienced by the user.

FIG. 6A is a screen shot illustrating an example graphical userinterface via which prior search results that have been clicked may beaccessed in association with one of the bookmarks shown in FIG. 5B. Whenthe user places the mouse over bookmark “travel” 602, previous searchresults that have been clicked by the user are presented in a portion ofthe user interface as shown at 604. Specifically, as shown in thisexample, the documents provided in previous search results that havebeen clicked by the user are shown under the title “Your clicks” 606.Each of the documents in this example has an indicator associatedtherewith at 608 that indicates the frequency with which these documentshave been selected (e.g., viewed) by the user.

FIG. 6B is the screen shot of FIG. 6A after one of the prior searchresults associated with a bookmark has been selected. When the userclicks on the “Lonely Planet” document as shown at 610, the user isredirected to the URL of the “Lonely Planet” website.

The user may then return to the search portal. FIG. 7A is a screen shotillustrating an example graphical user interface illustrating anautomatically generated set of bookmarks as described above. As shown inthis example, the set of bookmarks 210 does not include the bookmark“New York.”

FIG. 7B is a screen shot illustrating an example search query that hasbeen entered into the search text box 212. In this example, the usertypes the search query “New York” and clicks on the “Search” button 214to execute the search query.

FIG. 8 is a screen shot illustrating an example graphical user interfaceillustrating the search results corresponding to the search querysubmitted as shown in FIG. 7B. Specifically, a search results pageincluding the search results corresponding to the search query “NewYork” is presented. As shown in this example, the user interfaceincludes the set of bookmarks 210. In accordance with one embodiment, abookmark is automatically stored after one of the search results isclicked by the user. Alternatively, in accordance with anotherembodiment, a bookmark may be automatically stored merely based upon thesearch query that has been submitted.

FIG. 9A is an example screen shot illustrating the selection of one ofthe search results provided in FIG. 8. The user clicks on one of thedocuments presented in the search results. Specifically, the user clickson the “State of New York” search result as shown at 902. A bookmarkidentifying the search query previously submitted by the user may thenbe automatically stored and associated with the user, client, or webbrowser.

FIG. 9B is an example screen shot illustrating a resulting web pageafter the selection of the search result as shown in FIG. 9A. As shown,the user is redirected to the web page “http://www.state.ny.us/.” Theuser may return to the search portal, at which time the set of bookmarksmay be automatically retrieved and provided in the user interface.Specifically, the search engine may automatically retrieve the set ofbookmarks from a memory coupled to the search engine. Alternatively, theweb browser may automatically retrieve the set of bookmarks from userdata of the browser.

FIG. 10A is an example screen shot illustrating that the automaticallygenerated set of bookmarks includes a new bookmark corresponding to thesearch query submitted in FIG. 7B. Specifically, a bookmark “New York”1002 corresponding to the search query previously submitted by the usernow appears in the set of bookmarks 210 that are presented, since theuser has clicked on one of the search results corresponding to thesearch query “New York.”

At least one link to a set of one or more of the documents that havepreviously been selected in association with the search query may alsobe automatically provided (e.g., displayed). For instance, the user maythen submit a request to view those search results associated with thebookmark that have previously been clicked by the user, client, or webbrowser. For instance, the user may indicate a selection of theautomatically generated bookmark by submitting a request. In thisexample, such a request is submitted by simply moving the mouse over thebookmark.

FIG. 10B is a screen shot illustrating example search results associatedwith the new bookmark shown in FIG. 10A that have previously beenclicked. In this example, the user moves the mouse over the bookmark“New York” 1002 in order to view the previously clicked search results1004 associated with the bookmark. The previously clicked search results1004 are identified in this example by the heading “Your clicks.” Asshown at 1006, the “State of New York” document appears in thepreviously clicked search results 1004. Specifically, a hypertext linkassociated with the document may be provided. If the user were to clickon the document, the user would be redirected to the “State of New York”website.

FIG. 10C is a process flow diagram illustrating an example method ofautomatically storing bookmarks in accordance with various embodiments.Upon receiving a search query at 1020, information identifying abookmark representing the search query may be automatically stored inassociation with a set of bookmarks at 1022. For instance, theinformation may be stored in a memory of a network device such as asearch server or in user data of a browser. The set of bookmarks may beassociated with a user, client, or web browser that has submitted thesearch query. Search results corresponding to the search query may beautomatically obtained and provided at 1024, where the search resultsidentify one or more documents. When one of the documents is selected, alink to the selected one of the documents may be automatically stored inassociation with the bookmark at 1026 such that a set of one or morepreviously clicked documents are associated with the bookmark. Forinstance, the link may be stored in a memory of a network device such asa search server or in user data of a browser. In accordance with oneembodiment, the information identifying the bookmark is not stored untilone of the documents produced by the corresponding search query has beenselected.

As set forth above, the search results that are generated and providedin response to a search query or the selection of a bookmark may includeone or more links corresponding to one or more documents, wherein thelinks may be stored in association with a bookmark that identifies thesearch query (e.g., a selected bookmark).

FIG. 11 is a screen shot illustrating an example graphical userinterface via which aggregate search results may be provided. Once abookmark has been selected, the user may view aggregate search resultscorresponding to the selected bookmark. The aggregate search results mayinclude search results corresponding to multiple categories. In oneembodiment, the aggregate search results are provided independent ofwhether the search results were previously clicked.

Aggregate search results 1102 may be provided in response to a userrequest. For instance, the user may select of one of a set of bookmarksas shown at 1104. In this example, the selected bookmark “new york”represents a corresponding search query. In this example, the user mayview a list of aggregate search results by clicking on the “More” tab1106.

Aggregate search results may be obtained by automatically categorizing asearch query into one or more of a plurality of categories. The searchquery may then be automatically executed for each of the one or more ofthe plurality of categories in order to obtain search resultscorresponding to each of the one or more of the plurality of categories.

The categories may include Yahoo! properties such as Search, Answers,Business, Buzz, and Flickr. Each of the plurality of categories maycorrespond to or otherwise identify a different database, data source,web site, or document type. For instance, a Flickr category may includeimages, while another category may include video clips. Thus, a searchquery may be automatically executed against multiple databases, datasources, web sites, and/or document types.

FIG. 12 is a screen shot illustrating example aggregate search resultsassociated with one of the bookmarks shown in FIG. 11. In oneembodiment, when the user places the mouse over the bookmark “angelinajolie” 1202, aggregate search results 1204 associated with the bookmark1202 may be obtained and provided under the “More” tab 1106. The usermay then view these aggregate search results 1204 by clicking on the“More” tab 1106.

As shown in this example, there are two Yahoo! Search results 1206 andone Yahoo! Answers result 1208. The Yahoo! Search Results 1206 may havea corresponding indicator 1210 indicating that the results 1206 areassociated with the category Yahoo! Search. Similarly, the Yahoo!Answers result 1208 may have a corresponding indicator 1212 indicatingthat the result 1208 is associated with the category Yahoo! Answers.

In accordance with one embodiment, the selection of bookmark “angelinajolie” 1202 and/or the “More” tab 1106 may initiate the execution of asearch performed for the corresponding search query “angelina jolie” inorder to obtain the aggregate search results for multiple categories. Inaccordance with another embodiment, the selection of bookmark “angelinajolie” 1202 and/or the “More” tab 1106 may merely retrieve the aggregatesearch results from memory. In other words, when the user clicks on the“More” tab 1106, this may be interpreted as a request for the aggregatesearch results that have been obtained for the search query.

FIG. 13 is a screen shot illustrating example aggregate search resultsassociated with another one of the bookmarks shown in FIG. 11. When theuser places the mouse over the bookmark “barcelona” 1302, aggregatesearch results 1304 associated with the bookmark 1302 may be obtainedand provided under the “More” tab 1106. The user may then view theseaggregate search results 1304 by clicking on the “More” tab 1106.

As shown in this example, there are two Yahoo! Search results 1306 andone Yahoo! Answers result 1308. The Yahoo! Search Results 1306 may havea corresponding indicator 1310 indicating that the results 1306 areassociated with the category Yahoo! Search. Similarly, the Yahoo!Answers result 1308 may have a corresponding indicator 1312 indicatingthat the result 1308 is associated with the category Yahoo! Answers.

FIG. 14 is a screen shot illustrating example aggregate search resultsassociated with yet another one of the bookmarks shown in FIG. 11. Whenthe user places the mouse over the bookmark “business news” 1402,aggregate search results 1404 associated with the bookmark 1402 may beobtained and provided under the “More” tab 1106. The user may then viewthese aggregate search results 1404 by clicking on the “More” tab 1106.

As shown in this example, there is one Yahoo! Flickr result 1406, twoYahoo! Buzz results 1408 and one Yahoo! Search result 1410. The Yahoo!Flickr result 1406 may have a corresponding indicator 1412 indicatingthat the result 1406 is associated with the category Yahoo! Flickr.Similarly, the Yahoo! Buzz results 1408 may have a correspondingindicator 1414 indicating that the results 1408 is associated with thecategory Yahoo! Buzz, while the Yahoo! Search result 1410 may have acorresponding indicator 1416 indicating that the result 1410 isassociated with the category Yahoo! Search.

FIG. 15A is the screen shot of FIG. 14 after one of the aggregate searchresults has been selected. As shown in this example, the user clicks onthe Flickr result 1406 corresponding to the “business news” 1402bookmark.

FIG. 15B is a screen shot illustrating a resulting web pagecorresponding to the selected one of the aggregate search results shownin FIG. 15A. As shown in this example, the user is redirected to aFlickr photo page identified by the Flickr result 1406 of FIG. 15A.

FIG. 16A is a screen shot illustrating previously clicked search resultsin association with a selected one of the bookmarks shown in FIG. 11. Asshown in FIG. 16A, when the user clicks on the “photography” bookmark1602, the user may view the user clicks 1604 identifying those documentsthat the user has previously clicked after the user clicks on the “Yourclicks” tab 1606.

FIG. 16B is a screen shot illustrating aggregate search resultsassociated with the bookmark selected in FIG. 16A. As shown in FIG. 16B,after the user clicks on the “photography” bookmark 1602, the user mayview the aggregate search results 1608 by clicking on the “More” tab1610.

FIG. 16C is a screen shot illustrating the selection of one of theaggregate search results provided in FIG. 16B. As shown in this example,the user clicks on the Yahoo! Answers result 1612.

FIG. 16D is a screen shot illustrating a resulting web page inassociation with the selected one of the aggregate search results asshown in FIG. 16B. Specifically, the user is redirected to the Yahoo!Answers result page corresponding to the link identified at 1612 of FIG.16C.

FIG. 17A is a process flow diagram illustrating an example method ofproviding aggregate search results in accordance with variousembodiments. A search server may obtain a search query at 1702. Thesearch server may classify the search query into one or more of aplurality of categories at 1704. Classification may be performed via avariety of algorithms, which may involve matching search terms of thesearch query with words in the category titles. Other more complexalgorithms may involve further processing, which may include thematching of synonyms of the search terms, as well as synonyms of thewords in the category titles. The search server may then execute thesearch query for each of the one or more of the plurality of categoriesat 1706 and obtain search results corresponding to the search query foreach of the one or more of the plurality of categories at 1708. Thesearch server may then provide (e.g., display) the search resultscorresponding to the search query that have been obtained for each ofthe one or more of the plurality of categories 1710.

The search results may be obtained and provided by populating a templatecorresponding to each of the one or more categories. For instance, eachof the categories may have a template associated therewith thatidentifies one or more fields for which data is to be obtained. Examplefields include an http link or a photo. Such a template may be storedstatically or generated dynamically. For instance, the search engine mayidentify one or more properties for a corresponding one of thecategories for which search results are to be obtained. The searchresults for the identified properties may then be obtained for thecorresponding category.

FIG. 17B is a process flow diagram illustrating another example methodof providing aggregate search results in accordance with variousembodiments. A selection of one of a set of bookmarks may be received at1720, wherein each of the set of bookmarks identifies a search querythat has previously been submitted. Search results may be retrieved frommemory at 1722, the search results corresponding to the selectedbookmark. The search results that have been retrieved may then beprovided at 1722, wherein the search results include a link to each ofone or more documents, wherein each of the documents is associated witha corresponding one of a plurality of categories.

Embodiments of the present invention may be employed to automaticallystore, generate and provide bookmarks, previously clicked documents,and/or aggregate search results in any of a wide variety of computingcontexts. For example, as illustrated in FIG. 18, implementations arecontemplated in which users interact with a diverse network environmentvia any type of computer (e.g., desktop, laptop, tablet, etc.) 1802,media computing platforms 1803 (e.g., cable and satellite set top boxesand digital video recorders), handheld computing devices (e.g., PDAs)1804, cell phones 1806, or any other type of computing or communicationplatform.

And according to various embodiments, input that is processed inaccordance with the invention may be obtained using a wide variety oftechniques. For example, a search query may be obtained from a user'sinteraction with a local application, web site or web-based applicationor service and may be accomplished using any of a variety of well knownmechanisms for obtaining information from a user. However, it should beunderstood that such methods of obtaining input from a user are merelyexamples and that a search query may be obtained in many other ways.

Once a search query has been classified and aggregate search resultshave been obtained, aggregate search results may be processed accordingto the invention in some centralized manner. This is represented in FIG.18 by server 1808 and data store 1810 which, as will be understood, maycorrespond to multiple distributed devices and data stores. Theinvention may also be practiced in a wide variety of networkenvironments (represented by network 1812) including, for example,TCP/IP-based networks, telecommunications networks, wireless networks,etc. In addition, the computer program instructions with whichembodiments of the invention are implemented may be stored in any typeof computer-readable media, and may be executed according to a varietyof computing models including a client/server model, a peer-to-peermodel, on a stand-alone computing device, or according to a distributedcomputing model in which various of the functionalities described hereinmay be effected or employed at different locations.

The disclosed techniques of the present invention may be implemented inany suitable combination of software and/or hardware system, such as aweb-based server or desktop computer system. The search apparatus and/orweb browser of this invention may be specially constructed for therequired purposes, or it may be a general-purpose computer selectivelyactivated or reconfigured by a computer program and/or data structurestored in the computer. The processes presented herein are notinherently related to any particular computer or other apparatus. Inparticular, various general-purpose machines may be used with programswritten in accordance with the teachings herein, or it may be moreconvenient to construct a more specialized apparatus to perform therequired method steps.

Regardless of the system's configuration, it may employ one or morememories or memory modules configured to store data, programinstructions for the general-purpose processing operations and/or theinventive techniques described herein. The program instructions maycontrol the operation of an operating system and/or one or moreapplications, for example. The memory or memories may also be configuredto store query logs, bookmarks (e.g., automatically generatedbookmarks), hypertext links to previously clicked documents associatedwith the bookmarks, aggregate search results, categories, templates,etc.

Because such information and program instructions may be employed toimplement the systems/methods described herein, the present inventionrelates to machine readable media that include program instructions,state information, etc. for performing various operations describedherein. Examples of machine-readable media include, but are not limitedto, magnetic media such as hard disks, floppy disks, and magnetic tape;optical media such as CD-ROM disks; magneto-optical media such asfloptical disks; and hardware devices that are specially configured tostore and perform program instructions, such as read-only memory devices(ROM) and random access memory (RAM). Examples of program instructionsinclude both machine code, such as produced by a compiler, and filescontaining higher level code that may be executed by the computer usingan interpreter.

FIG. 19 illustrates a typical computer system that, when appropriatelyconfigured or designed, can serve as a system of this invention. Thecomputer system 1900 includes any number of processors 1902 (alsoreferred to as central processing units, or CPUs) that are coupled tostorage devices including primary storage 1906 (typically a randomaccess memory, or RAM), primary storage 1904 (typically a read onlymemory, or ROM). CPU 1902 may be of various types includingmicrocontrollers and microprocessors such as programmable devices (e.g.,CPLDs and FPGAs) and unprogrammable devices such as gate array ASICs orgeneral purpose microprocessors. As is well known in the art, primarystorage 1904 acts to transfer data and instructions uni-directionally tothe CPU and primary storage 1906 is used typically to transfer data andinstructions in a bi-directional manner. Both of these primary storagedevices may include any suitable computer-readable media such as thosedescribed above. A mass storage device 1908 is also coupledbi-directionally to CPU 1902 and provides additional data storagecapacity and may include any of the computer-readable media describedabove. Mass storage device 1908 may be used to store programs, data andthe like and is typically a secondary storage medium such as a harddisk. It will be appreciated that the information retained within themass storage device 1908, may, in appropriate cases, be incorporated instandard fashion as part of primary storage 1906 as virtual memory. Aspecific mass storage device such as a CD-ROM 1914 may also pass datauni-directionally to the CPU.

CPU 1902 may also be coupled to an interface 1910 that connects to oneor more input/output devices such as such as video monitors, trackballs, mice, keyboards, microphones, touch-sensitive displays,transducer card readers, magnetic or paper tape readers, tablets,styluses, voice or handwriting recognizers, or other well-known inputdevices such as, of course, other computers. Finally, CPU 1902optionally may be coupled to an external device such as a database or acomputer or telecommunications network using an external connection asshown generally at 1912. With such a connection, it is contemplated thatthe CPU might receive information from the network, or might outputinformation to the network in the course of performing the method stepsdescribed herein.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications may be practiced within the scope of theappended claims. Therefore, the present embodiments are to be consideredas illustrative and not restrictive and the invention is not to belimited to the details given herein, but may be modified within thescope and equivalents of the appended claims.

What is claimed is:
 1. A method, comprising: receiving a search queryvia a web browser of a client; obtaining a set of search resultscorresponding to the search query; providing the set of search resultscorresponding to the search query; automatically storing informationpertaining to a bookmark in user data of the web browser, wherein thebookmark identifies the search query that was received via the webbrowser of the client; retrieving information pertaining to a set ofbookmarks including the bookmark from the user data of the web browser;and providing, by the web browser, the set of bookmarks underneath asearch text box of a user interface, wherein each of the set ofbookmarks is user-selectable, wherein each of the set of bookmarksidentifies a corresponding search query that was previously received viathe web browser of the client; wherein bookmarks provided by the webbrowser do not identify search queries received via other web browsersor client devices.
 2. The method as recited in claim 1, furthercomprising: storing a link to at least one of the set of search resultsin association with the bookmark.
 3. The method as recited in claim 2,wherein the link to at least one of the set of search results is storedin association with the bookmark in response to a selection of the oneof the set of search results by the user.
 4. The method as recited inclaim 1, further comprising: classifying the search query into one ormore of a plurality of categories; executing the search query for eachof the one or more of the plurality of categories; wherein obtaining aset of search results includes obtaining search results corresponding tothe search query for each of the one or more of the plurality ofcategories; and wherein providing the set of search results includesproviding the search results corresponding to the search query that havebeen obtained for each of the one or more of the plurality ofcategories, wherein providing the search results corresponding to thesearch query that have been obtained for each of the one or more of theplurality of categories includes providing an indicator identifying eachof the one or more of the plurality of categories in association withcorresponding documents in the provided search results.
 5. The method asrecited in claim 1, further comprising: in response to a selection ofone of the set of search results via the web browser, storing ahyperlink to the selected one of the set of search results such that thehyperlink is associated with the bookmark.
 6. The method as recited inclaim 1, further comprising: receiving, via the client, a selection ofone of the set of bookmarks; retrieving, by the web browser of theclient, a set of links to documents that have previously been selectedvia the web browser in association with the search query identified bythe selected bookmark; and providing the set of links to documents thathave previously been selected via the web browser in association withthe search query identified by the selected bookmark.
 7. The method asrecited in claim 6, wherein each of the documents is associated with acorresponding one of a plurality of categories, the method furthercomprising: providing an indicator identifying each of one or more ofthe plurality of categories in association with correspondingdocument(s) in the provided set of previously clicked documents.
 8. Themethod as recited in claim 7, wherein each of the plurality ofcategories corresponds to a different web site, data source, database,or document type.
 9. The method as recited in claim 1, wherein the setof bookmarks is provided when the web browser returns to a searchportal.
 10. The method as recited in claim 1, further comprising:determining, for each bookmark in the set of bookmarks, a frequency withwhich the search query identified by the bookmark is executed via theweb browser of the client; and wherein a first subset of the set ofbookmarks for which search queries are executed more frequently via theweb browser of the client are displayed more prominently than a secondsubset of the set of bookmarks for which search queries are executedless frequently via the web browser of the client.
 11. The method asrecited in claim 10, wherein the first subset of the set of bookmarksand the second subset of the set of bookmarks are displayed usingdifferent display characteristics including one or more of font size,color, bolding, or underlining.
 12. The method as recited in claim 1,wherein the set of bookmarks is provided without receiving input via thesearch text box of the user interface.
 13. The method as recited inclaim 1, further comprising: determining a frequency with which eachbookmark in the set of bookmarks is selected via the web browser of theclient; and displaying the set of bookmarks based, at least in part, onthe frequency with which each bookmark in the set of bookmarks isselected via the web browser of the client such that a first subset ofthe set of bookmarks that is selected more frequently via the webbrowser of the client is displayed more prominently than a second subsetof the set of bookmarks that is selected less frequently via the webbrowser of the client.
 14. The method as recited in claim 13, whereinthe first subset of the set of bookmarks and the second subset of theset of bookmarks are displayed using different display characteristicsincluding one or more of font size, color, bolding, or underlining. 15.The method as recited in claim 1, wherein each of the set of bookmarkshas associated therewith a set of one or more documents that havepreviously been selected via the web browser in association with thesearch query identified by the corresponding one of the set ofbookmarks.
 16. The method as recited in claim 15, further comprising:receiving a selection of one of the set of bookmarks; identifying theset of one or more documents that have previously been selected via theweb browser in association with the search query corresponding to theselected bookmark; and providing a link to each of the set of one ormore documents.
 17. The method as recited in claim 16, wherein theselection of one of the set of bookmarks is received when a cursor ispositioned over the one of the set of bookmarks.
 18. The method asrecited in claim 15, further comprising: receiving a selection of one ofthe set of bookmarks; and in response to the selection of the one of theset of bookmarks, providing information associated with each of the setof one or more documents corresponding to the selected bookmark, whereinthe information indicates a frequency with which each of the set of oneor more documents has been selected via the web browser.
 19. The methodas recited in claim 18, wherein the selection of one of the set ofbookmarks is received when a cursor is positioned over the one of theset of bookmarks.
 20. The method as recited in claim 1, furthercomprising: receiving a selection of one of the set of bookmarks; and inresponse to receiving the selection of the one of the set of bookmarks,executing the search query identified by the corresponding bookmark andproviding search results obtained as a result of executing the searchquery identified by the corresponding bookmark.
 21. The method asrecited in claim 1, wherein information pertaining to a bookmark isstored in user data of the web browser in response to a selection of oneof the set of search results via the client.
 22. The method as recitedin claim 1, wherein automatically storing the information pertaining toa bookmark is performed in response to a selection via the web browserof one of the set of search results.
 23. The method as recited in claim1, wherein the set of bookmarks is retained over multiple searchsessions.
 24. The method as recited in claim 1, further comprising: inresponse to user input, deleting the set of bookmarks.
 25. The method asrecited in claim 1, wherein upon receiving a selection of one of the setof bookmarks, providing a set of links to a set of documents that havepreviously been selected via the web browser in association with thesearch query identified by the corresponding bookmark and an indicationof a frequency with which each of the set of one or more documents hasbeen selected via the web browser.
 26. The method as recited in claim25, wherein the indication is provided via a set of displaycharacteristics associated with the selected bookmark.
 27. Anon-transitory computer-readable medium storing thereoncomputer-readable instructions, comprising: receiving a search query viaa web browser of a client; obtaining a set of search resultscorresponding to the search query; providing the set of search resultscorresponding to the search query; automatically storing informationpertaining to a bookmark in user data of the web browser, wherein thebookmark identifies the search query that was received via the webbrowser of the client; retrieving information pertaining to a set ofbookmarks including the bookmark from the user data of the web browser;and providing, by the web browser, the set of bookmarks underneath asearch text box of a user interface, wherein each of the set ofbookmarks is user-selectable, wherein each of the set of bookmarksidentifies a corresponding search query that was previously received viathe web browser of the client; wherein bookmarks provided by the webbrowser do not identify search queries received via other web browsersor client devices.
 28. The non-transitory computer-readable medium asrecited in claim 27, wherein each of the set of bookmarks has associatedtherewith a set of one or more documents that have selected via the webbrowser in association with the search query identified by thecorresponding one of the set of bookmarks.
 29. An apparatus, comprising:a processor; and a memory, at least one of the processor or the memorybeing adapted for: receiving a search query via a web browser of aclient; obtaining a set of search results corresponding to the searchquery; providing the set of search results corresponding to the searchquery; automatically storing information pertaining to a bookmark inuser data of the web browser, wherein the bookmark identifies the searchquery that was received via the web browser of the client; retrievinginformation pertaining to a set of bookmarks including the bookmark fromthe user data of the web browser; and providing, by the web browser, theset of bookmarks underneath a search text box of a user interface,wherein each of the set of bookmarks is user-selectable, wherein each ofthe set of bookmarks identifies a corresponding search query that waspreviously received via the web browser of the client; wherein bookmarksprovided by the web browser do not identify search queries received viaother web browsers or client devices.